home *** CD-ROM | disk | FTP | other *** search
/ SPACE 1 / SPACE - Library 1 - Volume 1.iso / utilitys / 388 / micrortx / mwrtx.s < prev    next >
Text File  |  1990-02-15  |  6KB  |  309 lines

  1. /////////////////////////////////////////////////////////////////////////
  2. /                                    /
  3. /    RTXBIND.S                            /
  4. /                                    /
  5. /    (C) Copyright 1986, Beckemeyer Development Tools        /
  6. /    All Rights Reserved                        /
  7. /                                    /
  8. /    RTX interface to Mark Williams C.  These are re-entrant.    /
  9. /                                    /
  10. /////////////////////////////////////////////////////////////////////////
  11.  
  12. .shri
  13.     .globl rtx_install_
  14. rtx_install_:
  15.     move.l 4(sp),-(sp)        / root basepage address
  16.     move.w $0x00,-(sp)        / rtx_install
  17.     trap $5                / enter RTX
  18.     addq.l $6,sp
  19.     rts
  20.  
  21.     .globl p_create_
  22. p_create_:
  23.     link a6,$0
  24.     move.l 26(a6),-(sp)        / stack size
  25.     move.l 22(a6),-(sp)        / stack args
  26.     move.w 20(a6),-(sp)        / arg word count
  27.     move.l 16(a6),-(sp)        / load address
  28.     move.w 14(a6),-(sp)        / slice
  29.     move.w 12(a6),-(sp)        / priority
  30.     move.l  8(a6),-(sp)        / name    
  31.     move.w $0x01,-(sp)        / p_create
  32.     trap $5                / enter RTX
  33.     unlk a6                / restore stack 
  34.     rts
  35.  
  36.     .globl p_delete_
  37. p_delete_:
  38.     move.l 4(sp),-(sp)        / PID
  39.     move.w $0x02,-(sp)        / p_delete
  40.     trap $5                / enter RTX
  41.     addq.l $6,sp            / restore stack
  42.     rts
  43.  
  44.  
  45.     .globl p_priority_
  46. p_priority_:
  47.     link a6,$0
  48.     move.w 12(a6),-(sp)        / delta
  49.     move.l  8(a6),-(sp)        / PID
  50.     move.w $0x03,-(sp)        / p_priority
  51.     trap $5                / enter RTX
  52.     unlk a6
  53.     rts
  54.  
  55.     .globl p_slice_
  56. p_slice_:
  57.     link a6,$0
  58.     move.w 12(a6),-(sp)        / delta
  59.     move.l  8(a6),-(sp)        / PID
  60.     move.w $0x04,-(sp)        / p_slice
  61.     trap $5                / enter RTX
  62.     unlk a6
  63.     rts
  64.  
  65.     .globl q_create_
  66. q_create_:
  67.     link a6,$0
  68.     move.w 12(a6),-(sp)        / Q type
  69.     move.l  8(a6),-(sp)        / Q name
  70.     move.w $0x05,-(sp)        / q_create
  71.     trap $5                / enter RTX
  72.     unlk a6
  73.     rts
  74.  
  75.     .globl q_delete_
  76. q_delete_:
  77.     move.l 4(sp),-(sp)        / QID
  78.     move.w $0x06,-(sp)        / q_delete
  79.     trap $5                / enter RTX
  80.     addq.l $6,sp
  81.     rts
  82.  
  83.     .globl q_send_
  84. q_send_:
  85.     link a6,$0
  86.     move.l 12(a6),-(sp)        / messsage buffer
  87.     move.l  8(a6),-(sp)        / QID
  88.     move.w $0x07,-(sp)        / q_send    
  89.     trap $5                / enter RTX
  90.     unlk a6
  91.     rts
  92.  
  93.     .globl q_req_
  94. q_req_:
  95.     link a6,$0
  96.     move.l 18(a6),-(sp)        / timeout
  97.     move.w 16(a6),-(sp)        / nowait option
  98.     move.l 12(a6),-(sp)        / message buffer
  99.     move.l 8(a6),-(sp)        / QID
  100.     move.w $0x08,-(sp)        / q_req
  101.     trap $5                / enter RTX
  102.     unlk a6
  103.     rts
  104.  
  105.     .globl q_jam_
  106. q_jam_:
  107.     link a6,$0
  108.     move.l 12(a6),-(sp)        / messsage buffer
  109.     move.l  8(a6),-(sp)        / QID
  110.     move.w $0x09,-(sp)        / q_jam
  111.     trap $5                / enter RTX
  112.     unlk a6
  113.     rts
  114.  
  115.     .globl e_signal_
  116. e_signal_:
  117.     link a6,$0
  118.     move.w 12(a6),-(sp)        / event
  119.     move.l  8(a6),-(sp)        / PID
  120.     move.w $0x0a,-(sp)        / e_signal
  121.     trap $5                / enter RTX
  122.     unlk a6
  123.     rts
  124.  
  125.     .globl e_wait_
  126. e_wait_:
  127.     link a6,$0
  128.     move.l 14(a6),-(sp)        / timeout
  129.     move.w 12(a6),-(sp)        / condition
  130.     move.l  8(a6),-(sp)        / event buffer
  131.     move.w $0x0b,-(sp)        / e_wait
  132.     trap $5                / enter RTX
  133.     unlk a6
  134.     rts
  135.  
  136.     .globl p_pause_
  137. p_pause_:
  138.     move.l 4(sp),-(sp)        / timeout
  139.     move.w $0x0c,-(sp)        / p_pause
  140.     trap $5                / enter RTX
  141.     addq.l $6,sp
  142.     rts
  143.  
  144.     .globl m_alloc_
  145. m_alloc_:
  146.     move.l 4(sp),-(sp)        / size
  147.     move.w $0x0d,-(sp)        / m_alloc
  148.     trap $5                / enter RTX
  149.     addq.l $6,sp
  150.     rts
  151.  
  152.     .globl m_free_
  153. m_free_:
  154.     move.l 4(sp),-(sp)        / segment
  155.     move.w $0x0e,-(sp)        / m_free
  156.     trap $5                / enter RTX
  157.     addq.l $6,sp
  158.     rts
  159.  
  160.     .globl m_assign_
  161. m_assign_:
  162.     link a6,$0
  163.     move.l 12(a6),-(sp)        / PID
  164.     move.l  8(a6),-(sp)        / segment
  165.     move.w $0x0f,-(sp)        / m_assign
  166.     trap $5                / enter RTX
  167.     unlk a6
  168.     rts
  169.  
  170.     .globl p_lookup_
  171. p_lookup_:
  172.     move.l 4(sp),-(sp)        / name
  173.     move.w $0x10,-(sp)        / p_lookup
  174.     trap $5                / enter RTX
  175.     addq.l $6,sp
  176.     rts
  177.  
  178.     .globl q_lookup_
  179. q_lookup_:
  180.     move.l 4(sp),-(sp)        / Q name
  181.     move.w $0x11,-(sp)        / q_lookup
  182.     trap $5                / enter RTX
  183.     addq.l $6,sp
  184.     rts
  185.  
  186.     .globl p_vector_
  187. p_vector_:
  188.     link a6,$0
  189.     move.l 12(a6),-(sp)        / vector
  190.     move.l 8(a6),-(sp)        / PID
  191.     move.w $0x13,-(sp)        / p_vector
  192.     trap $5                / enter RTX
  193.     unlk a6
  194.     rts
  195.  
  196.     .globl p_suspend_
  197. p_suspend_:
  198.     link a6,$0
  199.     move.l 8(a6),-(sp)        / PID
  200.     move.w $0x14,-(sp)        / p_suspend
  201.     trap $5                / enter RTX
  202.     unlk a6
  203.     rts
  204.  
  205.  
  206.     .globl p_resume_
  207. p_resume_:
  208.     link a6,$0
  209.     move.l 8(a6),-(sp)        / PID
  210.     move.w $0x15,-(sp)        / p_resume
  211.     trap $5                / enter RTX
  212.     unlk a6
  213.     rts
  214.  
  215.     .globl d_install_
  216. d_install_:
  217.     link a6,$0
  218.     move.l 30(a6),-(sp)        / cntrl
  219.     move.l 26(a6),-(sp)        / costat
  220.     move.l 22(a6),-(sp)        / conout
  221.     move.l 18(a6),-(sp)        / conin
  222.     move.l 14(a6),-(sp)        / constat
  223.     move.l 10(a6),-(sp)        / name
  224.     move 8(a6),-(sp)        / unit
  225.     move $0x16,-(sp)            / d_install
  226.     trap $5                / enter RTX
  227.     unlk a6
  228.     rts
  229.  
  230.     .globl d_cntrl_
  231. d_cntrl_:
  232.     link a6,$0
  233.     move.l 10(a6),-(sp)        / long word parameter
  234.     move.w 8(a6),-(sp)        / unit number
  235.     move.w $0x17,-(sp)        / d_cntrl
  236.     trap $5                / enter RTX
  237.     unlk a6
  238.     rts
  239.  
  240.  
  241.     .globl q_info_
  242. q_info_:
  243.     link a6,$0
  244.     move.l 16(a6),-(sp)        / num proc
  245.     move.l 12(a6),-(sp)        / num msg
  246.     move.l 8(a6),-(sp)        / qid
  247.     move.w $0x18,-(sp)        / q_info
  248.     trap $5                / enter RTX
  249.     unlk a6
  250.     rts
  251.  
  252.  
  253.     .globl rtx_remove_
  254. rtx_remove_:
  255.     move.w $0xff,-(sp)        / rtx_remove
  256.     trap $5                / enter RTX
  257.     addq.l $2,sp
  258.     rts
  259.  
  260. /////////////////////////////////////////////////////////////////////////
  261. /                                    /
  262. /    BIOS, XBIOS, and GEMDOS re-entrant interface for RTX        /
  263. /                                    /
  264. /////////////////////////////////////////////////////////////////////////
  265.     .shri
  266.     .globl bios_
  267. bios_:
  268.     move $201,-(sp)
  269.     trap $5            / save real return address
  270.     addq.l $6,sp        / pop return off stack
  271.     trap $13
  272.     move.l d0,-(sp)        / save return value
  273.     move $203,-(sp)
  274.     trap $5            / save real return address
  275.     addq.l $2,sp
  276.     movea.l d0,a0
  277.     move.l (sp)+,d0        / set up return value
  278.     jmp (a0)
  279.  
  280.  
  281.     .globl xbios_
  282. xbios_:
  283.     move $201,-(sp)
  284.     trap $5            / save real return address
  285.     addq.l $6,sp        / pop return off stack
  286.     trap $14
  287.     move.l d0,-(sp)        / save return value
  288.     move $203,-(sp)
  289.     trap $5            / save real return address
  290.     addq.l $2,sp
  291.     movea.l d0,a0
  292.     move.l (sp)+,d0        / set up return value
  293.     jmp (a0)
  294.  
  295.  
  296.     .globl gemdos_
  297. gemdos_:
  298.     move $201,-(sp)
  299.     trap $5            / save real return address
  300.     addq.l $6,sp        / pop return off stack
  301.     trap $1    
  302.     move.l d0,-(sp)        / save return value
  303.     move $203,-(sp)
  304.     trap $5            / save real return address
  305.     addq.l $2,sp
  306.     movea.l d0,a0
  307.     move.l (sp)+,d0        / set up return value
  308.     jmp (a0)
  309.